// components/switch_bar/switch_bar.ts - 底部导航栏组件
Component({

  /**
   * 组件的属性列表
   */
  properties: {
    // 扩展样式类
    extClass: {
      type: String,
      value: ''
    },
    // 当前选中的标签页
    currentTab: {
      type: String,
      value: 'volleyball' // 默认选中排球页面
    },
    // 是否显示导航栏
    show: {
      type: Boolean,
      value: true
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    // 当前页面路径（用于判断当前激活状态）
    currentPath: '',
    // 防抖标志位，防止快速重复点击
    switching: false
  },

  /**
   * 组件生命周期
   */
  lifetimes: {
    attached() {
      // 获取当前页面路径
      const pages = getCurrentPages()
      if (pages.length > 0) {
        const currentPage = pages[pages.length - 1]
        const currentPath = currentPage.route
        
        // 根据当前路径设置激活状态
        let currentTab = 'volleyball'
        if (currentPath.includes('liuguang_index')) {
          currentTab = 'team'
        }
        
        this.setData({
          currentPath,
          currentTab
        })
        
        // 更新属性
        this.setData({
          'properties.currentTab': currentTab
        })
      }
    }
  },

  /**
   * 组件的方法列表
   */
  methods: {
    /**
     * 切换到排球页面
     */
    switchToVolleyball() {
      if (this.data.currentTab === 'volleyball' || this.data.switching) {
        return // 已经在当前页面或正在切换中，无需切换
      }
      
      // 设置切换状态，防止重复点击
      this.setData({
        switching: true,
        currentTab: 'volleyball'
      })
      
      // 触发切换事件
      this.triggerEvent('tabSwitch', {
        from: this.data.currentTab,
        to: 'volleyball',
        path: '/pages/index/index'
      })
      
      // 使用 redirectTo 替代 reLaunch，速度更快
      wx.redirectTo({
        url: '/pages/index/index',
        success: () => {
          // 切换成功后重置状态
          this.setData({
            switching: false
          })
        },
        fail: () => {
          // 如果 redirectTo 失败，则使用 reLaunch 作为备选
          wx.reLaunch({
            url: '/pages/index/index',
            complete: () => {
              this.setData({
                switching: false
              })
            }
          })
        }
      })
    },

    /**
     * 切换到流光小队页面
     */
    switchToTeam() {
      if (this.data.currentTab === 'team' || this.data.switching) {
        return // 已经在当前页面或正在切换中，无需切换
      }
      
      // 设置切换状态，防止重复点击
      this.setData({
        switching: true,
        currentTab: 'team'
      })
      
      // 触发切换事件
      this.triggerEvent('tabSwitch', {
        from: this.data.currentTab,
        to: 'team',
        path: '/pages/liuguang_index/liuguang_index'
      })
      
      // 使用 redirectTo 替代 reLaunch，速度更快
      wx.redirectTo({
        url: '/pages/liuguang_index/liuguang_index',
        success: () => {
          // 切换成功后重置状态
          this.setData({
            switching: false
          })
        },
        fail: () => {
          // 如果 redirectTo 失败，则使用 reLaunch 作为备选
          wx.reLaunch({
            url: '/pages/liuguang_index/liuguang_index',
            complete: () => {
              this.setData({
                switching: false
              })
            }
          })
        }
      })
    },

    /**
     * 手动设置当前激活的标签页
     */
    setActiveTab(tab: string) {
      this.setData({
        currentTab: tab
      })
    }
  }
})